<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         *  function 定义函数，有两种
         *  （1） 普通函数：函数名首字母是小写的、普通函数的调用是 函数名()
         *   (2)  构造函数：函数名首字母大写，使用 new 函数名()调用
         * 
         *  判断一个函数是不是构造函数，主要看调用方式，是不是用new关键字调用的
         */

        // 用函数也可以创建对象
        function createPerson(name,sex){
            console.log('this: ', this);// 普通函数中的this指向其调用者
            // 调用者是谁，取决于函数调用的时候前面有没有. ，如果有就是.前面的。如果没有就是window

            // 1. 创建一个新对象
            var obj = {};
            // 2. 给对象添加属性
            obj.name = name;
            obj.sex = sex;
            // 3. 返回该对象
            return obj;
        }

        var p1 = createPerson('赵四','man');
        console.log(p1);

        var p2 = createPerson('王五', 'woman');
        console.log(p2);

        var obj = {
            fn:createPerson // obj.fn 也指向了 createPerson函数体
        }

        obj.fn();

    </script>
</body>
</html>